home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir24 / tn-x1jr2.zip / TN-X1J2.ZIP / OVERVIEW.TXT < prev    next >
Text File  |  1994-03-17  |  93KB  |  2,043 lines

  1.                       TheNet X-1J release 2
  2.         
  3.                       Overview of Operation
  4.         
  5. 1. INTRODUCTION
  6.         
  7.      This  paper  introduces  the main features  of  TheNet  X-1J 
  8.      release  2.  This  is an update to  the  previous  paper  on 
  9.      version X-1J, and incorporates a number of changes including 
  10.      the following : 
  11.         
  12.         * Support for TexNet
  13.         * S Meter extensions to the heard list
  14.         * An ADC command to read DC voltage channels
  15.         * A bug fix to the size of the BBS, HOST and DXC buffers
  16.         * The command enable / disable syntax has been enhanced
  17.         * An  ACL  'speed-up' feature has been added  (  see  ACL 
  18.           details )
  19.         
  20.      The  software is a derivative of TheNet 1.01 by  NORD><LINK. 
  21.      Additional commands and bug fixes have been included in  the 
  22.      release.  In addition, the Patcher has been upgraded  and  a 
  23.      bug  fix  to  MOTOROLA.C attributable  to  KH6ILT  has  been 
  24.      included. My thanks to K4ABT, KA2DEW and WB4DDP to name  but 
  25.      a few for assisting with ideas, encouragement etc. Credit is 
  26.      also due to John Bednar, WB3ESS, for the SETHELP utility and 
  27.      Al,  WB0YRQ, for the MFJ1278C details. The  file  describing 
  28.      how  to set up a node stack so that all or a subset  of  the 
  29.      nodes share one IP address is attributable to Fiona, G7ANH.
  30.      
  31.      If  your  reaction is 'What I really want is  ......',  then 
  32.      please read on anyway, especially section 6.
  33.      
  34.      This  is  probably the last version of TheNet X-1.  This  is 
  35.      because  I  have agreed with Bill Beech, NJ7P, to  pool  our 
  36.      resources   for  future  developments.  The   next   version 
  37.      therefore will be a joint release of TheNet X-1J and  TheNet 
  38.      plus 2, provisionally called TheNet X-plus 3.0.
  39.      
  40. 2. STRUCTURE
  41.         
  42.      One  of the problems to extending TheNet is the 32  K  EPROM 
  43.      limitation  imposed by the architecture of TNC2 clones.  The 
  44.      solution  to  this is to implement bank switching.  For  the 
  45.      BSX2  TNC and similar TNC2 clones, this can be  achieved  by 
  46.      the addition of a single wire as detailed in the bank switch 
  47.      modification  file. This is at the expense of the  HIGH  and 
  48.      LOW   commands.  The  other  version  that  was   previously 
  49.      available with HIGH and LOW in it is no longer supported  as 
  50.      it is incompatible with the deviation meter.
  51.         
  52.         
  53. 3. NEW COMMANDS
  54.         
  55.      The following commands have been added to the release.
  56.         
  57.           BYE
  58.           BBS
  59.           HOST
  60.           STATS
  61.           MHEARD
  62.           MODE
  63.           MANAGER
  64.           AUDIT
  65.           TALK
  66.           CALIBRATE
  67.           LINKS
  68.           ACL
  69.           CLOSEDOWN 
  70.           BTEXT
  71.           DXCLUSTER
  72.           HELP
  73.           CTEXT
  74.           ALIAS
  75.           BBSALIAS
  76.           HOSTALIAS
  77.           DXCALIAS
  78.           QUIT
  79.           IPROUTE
  80.           ARP
  81.           IPSTATS
  82.           IPADDRESS
  83.           IPBROADCAST
  84.           UI
  85.           MTU
  86.           METER
  87.           ADC
  88.           ADC1
  89.           ADC2
  90.         
  91.      The following commands have been changed
  92.         
  93.           CQ
  94.           NODES
  95.           RESET
  96.           the <escape> commands
  97.           SYSOP
  98.         
  99.      The following features have been added to the code
  100.         
  101.           An Internet Router
  102.           Ability to respond to three additional aliases
  103.           A CWID keyer
  104.           The command processor has been extended
  105.           KISS mode operation on the RS232 port
  106.           HOST mode support on the RS232 port
  107.           Remote configuration of all parameters
  108.           Additional textual help messages
  109.           Support  for  a  4 channel ADC used  for  measuring  RX 
  110.           deviation, voltage and signal strength
  111.           Other changes as detailed herein.
  112.         
  113.      In addition, a number of small changes have been implemented 
  114.      to  satisfy the needs of specialist situations such  as  the 
  115.      ability to digi beacon packets.
  116.      
  117.      Network  management  in  this context  does  not  just  mean 
  118.      'setting parameters remotely'. It means the ability to  set, 
  119.      read  and interpret various monitors and  diagnostic  tools. 
  120.      Version  X-1C  included  the  first  part  of  the   network 
  121.      management,  the  MANAGER privilege and the  AUDIT  process. 
  122.      Version   X-1D   extends   the   auditing   and   statistics 
  123.      significantly including internal CPU monitors. Version  X-1E 
  124.      includes most of the additions that are planned, and version 
  125.      2  will  complete  the functions. No  other  release  before 
  126.      version  2  was planned, but the need to produce  a  version 
  127.      with  an IP router prompted X1J. Before moving to the  joint 
  128.      development,  I had agreed to finish off some long  standing 
  129.      commitments hence release 2 of X-1J. 
  130.         
  131. 3.1 BYE or QUIT
  132.         
  133.      There  are  no parameters to these commands.  When  entered, 
  134.      they terminate the session. Both commands do the same thing.
  135.         
  136. 3.2 BBS
  137.         
  138.      The syntax of the command is :
  139.         
  140.                        BBS [ * | ? | callsign ]
  141.         
  142.      With  no  parameter,  the  command  connects  to  a  station 
  143.      previously   specified  by  the  sysop.  Setting   the   BBS 
  144.      destination  is  done by the use of the BBS command  with  a 
  145.      callsign  as  a second parameter. Setting the BBS  to  allow 
  146.      this  may only be done by a sysop. The '*' option  may  also 
  147.      only  be  executed  by  the sysop,  this  command  clears  a 
  148.      previously specified BBS.
  149.  
  150.      The '?' option ( or any text if not sysop ), prints out  the 
  151.      current BBS station setting.
  152.      
  153.      If no BBS is set, the command issues an error message if  it 
  154.      is invoked with no other parameters.
  155.      
  156.      The  idea  of  this command is that,  like  with  the  'BBS' 
  157.      command  of  the 'BPQ software, a user may  connect  to  the 
  158.      local BBS from the node.
  159.      
  160.      The  BBS,  HOST and DXCLUSTER commands work by  copying  the 
  161.      callsign into a buffer. The copy operation does not compress 
  162.      the  SSID into a single byte however, so a callsign such  as 
  163.      KA2DEW-15  would occupy 9 bytes. I had the buffers set to  8 
  164.      bytes  length  max in versions previous to X-1J  release  2. 
  165.      Sorry.
  166.      
  167.      
  168. 3.3 HOST
  169.         
  170.      The syntax of the command is :
  171.         
  172.         
  173.                        HOST [ * | ? | callsign ]
  174.         
  175.      This command is very similar to the 'BBS' command. It allows 
  176.      connection  to  a  local  host, BBS  or  other  server.  The 
  177.      difference  however,  is that as long as the TNC is  not  in 
  178.      'crosslink' mode ( i.e. pin 23 on the RS232 port is high  ), 
  179.      and if a callsign is not set, the 'host' command connects to 
  180.      the local port.
  181.      
  182.      The  idea  of  this command is that,  like  with  the  'BBS' 
  183.      command  of  the 'BPQ software, a user may  connect  to  the 
  184.      local  BBS,  another  node or server  from  this  node.  For 
  185.      example,  if  a print server were connected to the  node  in 
  186.      'host'  mode,  this command would allow connection to  it  ( 
  187.      like  the  'connect' command with no other parameter  ).  In 
  188.      KISS   mode,  setting  a  callsign  or  node  alias   allows 
  189.      connection to another system.
  190.         
  191. 3.4 STATS
  192.         
  193.      The  STATS command has no parameters. It prints a number  of 
  194.      internal TNC statistics. In this version, this is limited to 
  195.      the  level  1 stats of the radio channel  and  the  internal 
  196.      clocks,  the level 2 ( AX.25 ), 3 and 4 statistics, and  the 
  197.      CPU health checks.
  198.      
  199.      For level 1, six pairs of numbers are printed, corresponding 
  200.      to the percentage of time the transmitter was on followed by 
  201.      the percentage of time the receiver DCD was on, for each  of 
  202.      the  last six 10 minute periods. The data is presented  most 
  203.      recent period first. Two pairs of numbers are then displayed 
  204.      showing the transmitter underrun and receiver overrun. These 
  205.      are formatted as per the level 2 stats with port 0  followed 
  206.      by  port 1 for the current hour followed by the  totals  for 
  207.      the previous hour. In the case of the RS232 port,  underruns 
  208.      are  not  possible, and an additional error ( framing  )  is 
  209.      included.  The  RX  overrun includes  overruns  and  framing 
  210.      errors.
  211.      
  212.      For level 2, the following are displayed :
  213.         
  214.           Frame checksum errors
  215.           Total packets heard
  216.           Total packets received by the node ( ie sent to it )
  217.           Total packets sent by the node
  218.           Total receiver not ready packets sent
  219.           Total reject packets sent
  220.           Total receiver not ready packets received
  221.           Total reject packets received
  222.           Total number of link timeouts
  223.         
  224.      For each of the level 2 statistics, four numbers are  shown. 
  225.      The  first two are cumulative totals over the period of  one 
  226.      hour, incrementing in real time. The last two are the totals 
  227.      for the previous hour. Each pair of numbers is the total for 
  228.      the  radio  port  followed  by the total  for  the  RS232  ( 
  229.      crosslink ) port. 
  230.      
  231.      For  checksum  errors, port 0 shows CRC errors  and  port  1 
  232.      shows  ( when in 'crosslink' protocol mode only ),  checksum 
  233.      errors. As HDLC errors can be triggered by noise, acceptance 
  234.      of  CRC errors is conditioned by the state of the DCD  line. 
  235.      If DCD is on and an error is signalled, it will be added  to 
  236.      the  count.  This  reduces the false counts,  but  does  not 
  237.      eliminate them. Distant stations that keep the squelch  open 
  238.      ( just ) without being properly heard will result in lots of 
  239.      apparent errors.
  240.      
  241.      For level 3, the number of level 4 frames gatewayed  between 
  242.      nodes is displayed.
  243.      
  244.      For  level  4,  the  number of  transport  frames  sent  and 
  245.      received by the node are shown.
  246.      
  247.      For  level  3 and 4 statistics, two numbers are  shown.  The 
  248.      first  is the number of frames accumulating for  this  hour, 
  249.      and the second number is the total number of frames for  the 
  250.      previous hour.
  251.      
  252.      For  CPU health checking, two statistics are shown, the  CPU 
  253.      loading  and the buffer usage. Each looks like the  level  1 
  254.      stats with 6 numbers corresponding to the last six 10 minute 
  255.      periods. 
  256.      
  257.      The  CPU loading shows the number of times, divided by  100, 
  258.      that  the CPU makes it around its basic internal  scheduler. 
  259.      For a node just switched on, receiving nothing, this will be 
  260.      about  470  ish for a 4.9 MHz clock. With lots of  nodes,  a 
  261.      heard  list of 20 stations and 70-80% activity on the  radio 
  262.      channel for it to listen to, this can drop to about  350ish. 
  263.      If  it  drops  to  double figures,  worry,  as  the  CPU  is 
  264.      beginning  to  thrash.  At low double figures,  the  CPU  is 
  265.      pretty much working flat-out. Time to up its clock rate !.
  266.      
  267.      The  BUFFERS  statistic  shows the minimum  number  of  free 
  268.      buffers  that  the software had available to it  during  the 
  269.      last six 10 minute period. This indicates whether the TNC is 
  270.      failing   to   deliver  data  passed  to  it   for   onwards 
  271.      transmission, as well as how much data is backed up waiting. 
  272.      Additional stats needed to analyse this properly are not yet 
  273.      being collected.
  274.      
  275.      The  display  also  shows the elapsed time  since  the  last 
  276.      warmstart  followed  by  the running  time  since  the  last 
  277.      coldstart. Each number is the number of hours of operation.
  278.      
  279. 3.5 MODE
  280.         
  281.      This  command is similar to the PARMS command, and  includes 
  282.      the new syntax described in section 3.32.
  283.      
  284.      It  allows a number of other features of the software to  be 
  285.      configured  remotely.  It removes the need for most  of  the 
  286.      host mode <escape> commands.
  287.      
  288.      The following parameters may be configured :
  289.         
  290.        1  The host mode
  291.        2  The CWID send period
  292.        3  The CWID keyer speed
  293.        4  The port nodes broadcast control
  294.        5  The crosslink / kiss control
  295.        6  The Tx delay
  296.        7  The full duplex flag
  297.        8  The RS232 port node broadcast interval
  298.        9  The node broadcast algorithm
  299.       10  The beacon period
  300.       11  The 'connect' redirector
  301.       12  The  'help  message enable' flags, case  sensitivity  & 
  302.           TALK 8 bit flag
  303.       13  The 'hash' node broadcast port control
  304.       14  Whether the node will listen for the extra aliases
  305.       15  Whether  remote disconnect causes reconnection  to  the 
  306.           switch
  307.       16  Control over 'slime trails'
  308.       17  Control over digipeating up/down links
  309.         
  310.      In operation, it behaves just like the PARMS command.
  311.      
  312.      The parameters are as follows :
  313.         
  314. 3.5.1 Host mode control
  315.         
  316.      This parameter controls the 'host' mode. This is the mode of 
  317.      operation of the RS232 port when pin 23 is 'high'
  318.      
  319.      The valid values are 0 or 1.
  320.      
  321.      In  mode  0,  the port operates as  per  the  standard  node 
  322.      specification.  Mode  1 is designed to allow  connection  to 
  323.      hosts  or  modems or similar equipment that expects  a  'CD' 
  324.      type  of  signal  to signify that  an  incoming  /  outgoing 
  325.      connection is called for.
  326.      
  327.      In  mode  1,  the <escape> C and  <escape>  D  commands  are 
  328.      disabled and the other <escape> commands do not operate when 
  329.      connected. Instead, hardware handshakes are used to  control 
  330.      connections to and from the TNC.
  331.      
  332.      The TNC monitors pin 20 to determine the state of the  host, 
  333.      and  signals state changes to the host with pin 5.  When  an 
  334.      incoming  connect request is received ( by the  'c'  command 
  335.      with  no  parameters  or by the 'host' command  ),  the  TNC 
  336.      raises pin 5 to signal the connection and expects pin 20  to 
  337.      change state in response.
  338.      
  339.      When  the host wishes to connect to the TNC, it  signals  on 
  340.      pin  20 and the TNC responds with by changing the  state  of 
  341.      pin 5.
  342.      
  343.      It handles disconnects in a similar manner. Either the  node 
  344.      or the host may initiate disconnects.
  345.      
  346.      This  mode  is  experimental, changes may  be  made  to  its 
  347.      operation. It is designed for modems, print servers or hosts 
  348.      such as UNIX system TTY login drivers.
  349.      
  350. 3.5.2 CWID control
  351.         
  352.      The next two parameters control the CWID keyer. 
  353.      
  354.      The  first parameter is the CWID repeat period  in  seconds. 
  355.      Valid values are 0 to 3600. 0 disables it but do not set  it 
  356.      below 120 apart from to disable it.
  357.      
  358.      The second parameter controls the keyer speed. Specifically, 
  359.      it sets the number of 10 millisecond periods per dot and per 
  360.      inter symbol delay.
  361.      
  362.      The  speed of sending is 120/n, so setting n to 6  gives  20 
  363.      wpm. Valid values are 4 to 10, corresponding to speeds of 30 
  364.      and 12 wpm respectively.
  365.      
  366. 3.5.3 Node broadcast control
  367.         
  368.      This  parameter  allows control to be exercised  over  which 
  369.      ports nodes broadcasts are sent. Valid settings are 0 - 3.
  370.      
  371.      Value  0 disables node broadcasts. Value 3 ( the  default  ) 
  372.      works as normal. A value of 1 enables broadcasts on the HDLC 
  373.      port  only  whilst a value of 2 enables  broadcasts  on  the 
  374.      crosslink port only.
  375.         
  376. 3.5.4 Crosslink / kiss
  377.         
  378.      This  parameter is used to set the  communications  protocol 
  379.      used on the crosslink port when pin 23 is tied low.
  380.      
  381.      The valid values are 0, 1, 2 or 3 
  382.      
  383.      Mode 0 - standard crosslink protocol enabled
  384.      Mode 1,2,3 - use KISS instead of crosslink.
  385.      
  386.      In  mode 1, KISS simply replaces the crosslink  protocol  In 
  387.      mode  2, packets received from the radio part that  are  not 
  388.      intended  for the node are copied to the RS232 port in  KISS 
  389.      mode. Similarly packets received on the RS232 port that  are 
  390.      not intended for the node are sent to the radio port.
  391.      In  mode 3, all packets received on one port are  copied  to 
  392.      the other port as well as being analysed by the node.
  393.      
  394.      These modes are not simply KISS implementations that replace 
  395.      the node, they run with the node.
  396.      
  397.      Mode 2 is designed to allow a KISS application and a node to 
  398.      share  a  radio without interference with  each  other.  The 
  399.      point  is  that  the PC TCP/IP system can  be  switched  off 
  400.      whilst leaving the node running to allow others to use it.
  401.      
  402.      Mode 3 is a debugging mode. One problem when faultfinding on 
  403.      a  node  is that it is impossible to see what  the  node  is 
  404.      seeing on the channel without replacing the ROM. By  setting 
  405.      this  mode, it is possible to connect a KISS application  to 
  406.      the RS232 port and observe what the node is seeing.
  407.      
  408.      Mode 3 is also designed to allow a PC running AXSTATS to  be 
  409.      connected to the RS232 port to allow logging and analysis of 
  410.      channel performance from the node itself. Note that  packets 
  411.      initiated  by the node for one port will not get  copied  to 
  412.      the other.
  413.         
  414. 3.5.5 Tx keyup delay
  415.         
  416.      This   parameter  sets  the  TX  keyup  delay  in  10's   of 
  417.      milliseconds.  This  was  previously done  using  an  escape 
  418.      command.
  419.         
  420. 3.5.6 Full Duplex
  421.         
  422.      This parameter sets or clears the full duplex control  flag. 
  423.      This was previously done using an escape command.
  424.         
  425. 3.5.7 RS232 nodes broadcast interval
  426.         
  427.      When a crosslinked TNC is reset, it takes some time to learn 
  428.      about  the nodes that the other TNCs can hear.  Also,  nodes 
  429.      heard  by  one TNC can take an hour to be  notified  to  the 
  430.      others.
  431.      
  432.      In  order  to improve this, this parameter may  be  used  to 
  433.      change the frequency of nodes broadcasts on the RS232  port. 
  434.      When  set to 0, the node operates as normal. When set  to  a 
  435.      non  zero  value, it will broadcast the nodes on  the  RS232 
  436.      port  at that interval. Hence setting it to 600 would  cause 
  437.      nodes broadcasts at 10 minute periods. The nodes  broadcasts 
  438.      on  the radio port will continue to occur at the basic  rate 
  439.      set  by  the PARMS setting. The obsolescence count  will  be 
  440.      decremented at the basic rate, not at the faster RS232 rate.
  441.      
  442. 3.5.8 Node broadcast algorithm
  443.         
  444.      This  value  controls the algorithm used.  Bits  within  the 
  445.      value set have significance as shown below.
  446.      There  is a problem with the nodes broadcast algorithm  when 
  447.      many TNCs are crosslinked on RS232. In order to address this 
  448.      a  variation  to  the algorithm  has  been  implemented  for 
  449.      experimental purposes. Feedback on its use is requested. Bit 
  450.      zero affects the HDLC port and bit 1 affects the RS232 port. 
  451.      When  a  bit is set to 1, the node  broadcast  algorithm  is 
  452.      modified so that it will not rebroadcast on the same port  a 
  453.      node  heard on that port when the best quality neighbour  is 
  454.      on  that port. It makes little sense to use it on  the  HDLC 
  455.      port but what the heck, it is implemented for  completeness. 
  456.      The  only  settings therefore that make sense are 0  and  2. 
  457.      These  correspond  to 'normal' and 'modified  on  the  RS232 
  458.      port' respectively. Setting it to 1 or 3 will result in some 
  459.      pretty weird effects.
  460.         
  461. 3.5.9 Beacon period
  462.         
  463.      This  parameter  sets  the beacon interval  in  seconds.  In 
  464.      TheNet  1.01, this was fixed at 10 minutes ( 600 seconds  ). 
  465.      In  this  version, this parameter may be used to  change  it 
  466.      according the prevailing license conditions.
  467.         
  468. 3.5.10 'Connect' redirector
  469.         
  470.      In TheNet 1.01, when 'connect' is given with no  destination 
  471.      callsign,  the node attempted to connect to the  local  host 
  472.      port.  In a crosslinked system, this vanished down  a  black 
  473.      hole. In previous versions of this code, the node  attempted 
  474.      to  connect  to the station set by the  HOST  command,  only 
  475.      trying  the  local host port if no destination  was  set  by 
  476.      HOST.  With  this  version, the node may  be  configured  to 
  477.      connect to the station set by the BBS, DXCLUSTER or the HOST 
  478.      command  depending  on this parameter.  When  zero,  connect 
  479.      attempts  will go to the HOST station, when set to  '1',  it 
  480.      will  attempt to connect to the BBS callsign. When set to  2 
  481.      it will attempt to connect to the DXCLUSTER callsign.
  482.         
  483. 3.5.11 'help message enable' flags
  484.         
  485.      This  word controls the sending of help messages, with  each 
  486.      bit of the word controlling a separate function.  Currently, 
  487.      only 8 bits are effective, these being as follows :
  488.      
  489.           BIT  FUNCTION
  490.           =========================
  491.           0    Whether the 'please wait, trying xxxx' operates
  492.           1    Whether all commands appear in help for sysop
  493.           2    Whether the 'goodbye' message is given
  494.           3    Whether a welcome message is enabled ( CTEXT )
  495.           4    Whether nodes are shown as 'alias:callsign'
  496.           5    If  set, TALK data is passed as 8 bit data  rather 
  497.                than clearing the most significant bit
  498.           6    If  set,  node  aliases  are  deemed  to  be  case 
  499.                sensitive
  500.           7    If  set,  enables  the  TexNet  "***  LINKED   to" 
  501.                interface
  502.  
  503.         
  504.      When  bit 0 is set, and the BBS, HOST or DXcluster  commands 
  505.      are given, then a message is sent from the node telling  the 
  506.      user  that  a connect attempt is being made. This  does  not 
  507.      affect  the 'connect' command itself, unless the command  is 
  508.      given  with no parameter as this is then equivalent  of  the 
  509.      BBS or HOST command.
  510.      
  511.      When  bit  1  is  set, and if a  sysop  gives  an  incorrect 
  512.      command,  the  help  screen  shows  all  commands  possible, 
  513.      including  those currently disabled ( as by definition  they 
  514.      are not disabled for the sysop ! ).
  515.      
  516.      When  bit 2 is set, then the use of the 'bye'  command  will 
  517.      solicit a 'goodbye' message from the node.
  518.      
  519.      Bit 3 switches on and off the 'CTEXT' message. When enabled, 
  520.      and  when  a  CTEXT message is set,  then  whenever  someone 
  521.      uplinks  to  the  node  alias, the  ctext  message  is  sent 
  522.      immediately on connect.
  523.      
  524.      Bit  4  switches the way in which nodes are shown  when  the 
  525.      ROUTES command is used. When set to '1', nodes are shown  as 
  526.      'alias:callsign'.  When  set to 0, they are  shown  only  as 
  527.      'callsign'.
  528.      
  529.      Bit  5  controls  only the passing of  data  in  TALK  mode. 
  530.      Normally, all data sent to the node has its most significant 
  531.      bit  cleared, to eliminate parity or similar problems.  This 
  532.      is  not  ideal  for those countries that  use  the  extended 
  533.      character set. When this bit is set, and only when in  TALK, 
  534.      data is passed as 8 bit data. Note that this does not  apply 
  535.      to  an  initial message sent on the same line  as  the  TALK 
  536.      command.
  537.      
  538.      Bit  6  makes node handing case  sensitive.  Normally,  node 
  539.      aliases are forced to upper case for searching in the  table 
  540.      and  for user 'connect requests'. If this bit is set,  these 
  541.      operations  will become case sensitive. This could  be  very 
  542.      confusing  for users unless they are aware of it and  expect 
  543.      it. It allows node aliases to be entered as lower case,  for 
  544.      example  in  setting the node alias and in  forcing  routes. 
  545.      Don't set this bit unless it is actually needed !.
  546.      
  547.      Bit 7 controls the TexNet interface. If set, the TexNet "*** 
  548.      LINKED  to"  command string handling is enabled  so  that  a 
  549.      TexNet  to  Net/Rom  interface  may  be  effected.  This  is 
  550.      described  further  in section 4.4. If the bit is  not  set, 
  551.      then  a TexNet "*** LINKED to" string will solicit an  error 
  552.      message.
  553.      
  554. 3.5.12 'hash' node port control
  555.         
  556.      In  certain  networks ( notably the American ), there  is  a 
  557.      need  to  restrict the propagation of local nodes.  This  is 
  558.      done by using node aliases that start with a hash  character 
  559.      ( # ) and instructing specific nodes not to broadcast routes 
  560.      to nodes that start with this character. This parameter does 
  561.      this  by  enabling each port to be individually  enabled  or 
  562.      disabled  in  respect  to  'hash'  node  broadcasts.  Bit  0 
  563.      controls  the radio port and bit 1 controls the RS232  port. 
  564.      When  one  of these bits is set, hash nodes  will  never  be 
  565.      broadcast on that port.
  566.         
  567. 3.5.13 Extra aliases
  568.         
  569.      If  this is set to '1', then the node will listen for (  and 
  570.      accept  uplinks to ) the aliases set in HOSTALIAS,  DXCALIAS 
  571.      and  BBSALIAS if they are set. If this parameter is  set  to 
  572.      '0',  or if the respective aliases are not set, it  will  do 
  573.      nothing. If you do not use the aliases, set it to 0 to avoid 
  574.      wasting processor time.
  575.         
  576. 3.5.14 Reconnect to Switch
  577.         
  578.      If  this  parameter  is  set to  0,  the  node  operates  as 
  579.      normally. If set to a non zero value ( i.e. set to '1' ), it 
  580.      operates in 'reconnect' mode. When a station connects to the 
  581.      switch,  then  uses  the BBS,  HOST,  DXCluster  or  Connect 
  582.      commands to connect to another station, and then causes that 
  583.      remote   station   to  disconnect  them,   then   they   are 
  584.      automatically reconnected to the node with a 'welcome  back' 
  585.      message.
  586.         
  587. 3.5.15 NoSlime
  588.         
  589.      This  parameter controls 'slime trails'. A 'slime trail'  is 
  590.      caused  when a remote node, whose identity is not  known  to 
  591.      the  node,  sends a transport connect request to  the  node. 
  592.      Subject to the settings of the port qualities, the node  may 
  593.      make  an entry in the node table in order to reply to  them. 
  594.      Such entries are typified by having no alias associated with 
  595.      them.
  596.      
  597.      Each  bit  in  the NoSlime parameter  controls  a  different 
  598.      function. Bit 0, if set, causes any stations without aliases 
  599.      to be 'hidden' when a nodes command is given. Bit 1. if set, 
  600.      causes the node to refuse to make slime trail entries in the 
  601.      node table. Before you use this feature, be careful to  make 
  602.      sure  that you understand the implications of doing  so,  as 
  603.      without fixed entries the node will refuse to accept level 4 
  604.      connections  from  a station until it has heard  their  node 
  605.      broadcast.
  606.      
  607. 3.5.16 NoDigi
  608.         
  609.      This  parameter  controls the node's willingness  to  accept 
  610.      digipeated  level  2  connections  or  to  allow  digipeated 
  611.      downlinks from the node. Each bit of the parameter  controls 
  612.      a different function, as shown below :
  613.      
  614.           BIT  FUNCTION
  615.           =======================================
  616.           0    If set, do not allow digipeated connections to the 
  617.                node
  618.           1    If set, do not allow digipeated downlinks from the 
  619.                node switch
  620.         
  621.         
  622. 3.6 MHEARD
  623.         
  624.      The  TNC can be instructed to keep a list of the  last  'nn' 
  625.      stations heard, where 'nn' is an integer between 1 and  100. 
  626.      It can also be disabled. The syntax of the command is :
  627.      
  628.      
  629.                        MHEARD [ nn ]
  630.         
  631.      The  parameter is optional and only operates for the  sysop. 
  632.      It  sets  the maximum length of the list.  Setting  to  zero 
  633.      disables the function.
  634.      
  635.      The  heard list uses free buffers for the list, so  a  large 
  636.      setting means less RAM for the node software.
  637.      
  638.      The  list  is  maintained  as linked  list,  with  the  most 
  639.      recently  heard station first. The display shows the  number 
  640.      of packets heard from that station and the time since it was 
  641.      last  heard, in hours minutes and seconds.  In addition,  it 
  642.      shows the port on which the station was heard together  with 
  643.      an indication as to whether the station is a node and / or a 
  644.      TCP/IP  or a TexNet station. It does this by  examining  the 
  645.      PID byte. 
  646.      Every  hour the list is checked for stations that  have  not 
  647.      been  heard for 12 hours, and any such stations are  removed 
  648.      from the list.
  649.      
  650.      To  disable the internal updating of the list ( and  thereby 
  651.      stop  the  CPU expending effort on the function ),  set  the 
  652.      size  to  zero  rather than just disabling  the  command  as 
  653.      described  in 3.8. Note though that the node will not  clear 
  654.      the list as updates have been disabled, so it will be up  to 
  655.      12  hours before the buffers used are freed.  To  accelerate 
  656.      this  process, set the size to 1, wait until it has heard  a 
  657.      station  ( any one will do ) then set it to zero. This  will 
  658.      free up all but one buffer immediately.
  659.      
  660.      The  heard  list  is  the  user  interface  to  the  receive 
  661.      deviation meter. Its operation is explained in section 3.31. 
  662.      If  enabled ( ie if the METER parameter is not set to  0  ), 
  663.      then  an  additional column will be displayed in  the  heard 
  664.      list that will show the received deviation in kilohertz ( as 
  665.      nn.n  ).  It  must be remembered that  this  is  derived  by 
  666.      measuring  the received signal audio level, and will not  be 
  667.      correct in the case of a badly distorted signal.
  668.      
  669.      The  heard list may also show received signal  strengths  if 
  670.      enabled by the Sysop. In this case, the signal strength will 
  671.      be  shown for each station in the list after  the  deviation 
  672.      level ( if enabled ). The display will be either dBm or  the 
  673.      common 'S1 to S9' format according to its configuration. How 
  674.      accurate  it is depends on the accuracy of its  calibration. 
  675.      At  best  it may typically be +- 1dB relative  accuracy,  at 
  676.      worst  totally misleading. In the same way that you can  use 
  677.      the deviation meter to set up your station, pay heed of  the 
  678.      signal  level  too. If you are 40 dB over the noise  into  a 
  679.      local  node,  consider  dropping your signal  20  dB  (  for 
  680.      example from 10 W to 100 mW ). Those around you also running 
  681.      high  power may however make this difficult. The idea is  to 
  682.      get in reliably with the snallest signal not to see how  big 
  683.      a signal you can put into the node.
  684.      
  685. 3.7 CQ
  686.         
  687.      When CQ is disabled, the command now reports  apologetically 
  688.      rather than simply ignoring the request.
  689.      
  690. 3.8 ALL COMMANDS
  691.         
  692.      There  is  often  a requirement to be able  to  disable  the 
  693.      connect  command whilst allowing level 3 relaying.  This  is 
  694.      achieved  by the use of a command qualifier, the  syntax  of 
  695.      which is :
  696.         
  697.         
  698.                        CONNECT [ + | - ]
  699.         
  700.      If  '-'  is entered by the sysop, then the  connect  command 
  701.      will  politely refuse to work. This can be reversed  by  the 
  702.      '+' command.
  703.      
  704.      This  has no effect of layer 3 relaying. Also, the  BBS  and 
  705.      HOST  commands  will still allow connections to be  made  if 
  706.      they are enabled and set.
  707.      
  708.      Further,  the syntax is valid for ALL commands, for  example 
  709.      the  CQ  command can also be disabled in the  same  way.  Be 
  710.      careful though. The command is only accepted from the sysop, 
  711.      so  if you disable the sysop and manager commands  you  will 
  712.      lock out remote management !.
  713.         
  714. 3.9 NODES
  715.         
  716.      When  information on a node that is not known is  requested, 
  717.      the  program prints out an error message rather than  giving 
  718.      the names of all known nodes.
  719.      
  720.      When a node entry is made by the sysop, callsign checking is 
  721.      forced  ON  rather  than being determined  by  the  callsign 
  722.      checking parameter.
  723.      
  724.      Don't forget that node alias handling may be case  sensitive 
  725.      - see section 3.5.11.
  726.      
  727.      The entire contents of the node table routes may be obtained 
  728.      by the sysop or manager by the command
  729.      
  730.         
  731.                        NODES * *
  732.         
  733.      This  will dump info on all nodes, one node per  line,  with 
  734.      the following format:
  735.         
  736.         
  737.                   Alias:call   route1   route2   route3
  738.         
  739.      where  route1,  route2  and  route3  comprise  the  quality, 
  740.      obsolescence  count  and  port  followed  by  the  neighbour 
  741.      callsign  for each of the 3 route entries for that node.  If 
  742.      any  of  the routes are in use, a chevron will be  shown  by 
  743.      that route.
  744.      
  745.      The  extended  command  is only for sysop use  as  it,  like 
  746.      auditing and conferencing, causes the node to be a source of 
  747.      a  significant  amount of data ( dumping a large  number  of 
  748.      node  details can consume hundreds of buffers !!! ).  It  is 
  749.      quite possible that used indiscriminately, it could cause  a 
  750.      warmstart of the node. Be careful.
  751.         
  752. 3.10 RESET
  753.         
  754.      The syntax of the command is now 
  755.         
  756.         
  757.                        RESET [ anything-else ]
  758.         
  759.      Entering the reset command alone will do a warmstart. If any 
  760.      other parameter is entered, a coldstart is performed.
  761.         
  762. 3.11 MANAGER
  763.         
  764.      The MANAGER command gives the user extra privileges. In this 
  765.      version,  this  amounts  to the  ability  to  receive  audit 
  766.      messages from the node. The level of auditing is set by  the 
  767.      AUDIT command.
  768.      
  769.      The  privilege remains in force until cleared by  a  command 
  770.      that  affects  the  user  state.  Specifically,  these  are, 
  771.      entering  the  TALK  state,  executing  the  SYSOP  command, 
  772.      entering the MANAGER command and getting the password wrong, 
  773.      or  disconnecting from the node. Failing to get  the  second 
  774.      password  right when using the closedown command  will  also 
  775.      remove the manager privilege.
  776.      
  777.      If the MANAGER command is executed by a user who   connected 
  778.      to  the node by a level 4 circuit rather than by a  level  2 
  779.      circuit,  and  if the level 2 timeout is less  than  the  no 
  780.      activity  timeout, the connection will never timeout as  the 
  781.      clearing  and reconnecting of the level 2 circuit will  keep 
  782.      the process alive provided level 2 auditing is enabled. This 
  783.      allows  the operation of the node to be logged remotely  and 
  784.      continuously.  Alternatively,  if  the level  4  timeout  is 
  785.      greater  than 10 minutes, level 1 or CPU auditing will  keep 
  786.      it  alive if level 2 is switched off. NOTE : I have a  nasty 
  787.      feeling  that there is something not quite right here -  the 
  788.      link sometimes dies !.
  789.      
  790.      A user with MANAGER privilege also has SYSOP privilege.
  791.         
  792. 3.12 AUDIT
  793.         
  794.      The syntax of the audit command is : 
  795.         
  796.         
  797.                        AUDIT [ new-value ]
  798.         
  799.      where  new value is an integer value. If no value is  given, 
  800.      or  the  user does not have SYSOP status, the  current  mask 
  801.      value  is displayed. Otherwise, the mask is updated and  the 
  802.      new value displayed.
  803.      
  804.      The  mask  controls the auditing of various  events  in  the 
  805.      node. Not all values are used yet, but those that are, are :
  806.      
  807.           BIT            USE
  808.           ============================================
  809.           0        Level 1 statistics on 10 minute updates
  810.           1        Level 2 connects & disconnects
  811.           2        reserved for future use
  812.           3        Level 4 connects & disconnects
  813.           4        Level 7 limited events ( use of sysop )
  814.           5        Full level 7 auditing
  815.           6        CPU auditing messages ( 10 minute updates )
  816.         
  817.      It  is suggested that the usual settings can simply be 0  or 
  818.      255.
  819.         
  820.      For level 1, messages are sent every 10 minutes showing  the 
  821.      percentage  of time that the receiver detected  carrier  and 
  822.      the percentage of time that the transmitter was on.
  823.      
  824.      At  level  2  &  4, the messages are  of  all  connects  and 
  825.      disconnects, shown in 4 different ways :
  826.         
  827.                   C    Connect message received by node
  828.                   CA   Connect message sent / Acknowledge received
  829.                   D    Disconnect message received by node
  830.                   DA   Disconnect message sent / Acknowledge received
  831.      
  832.      In  each case, 2 callsigns are shown. At level 2  these  are 
  833.      the source and destination of the AX.25 link. At level 4, it 
  834.      is the remote node callsign and user callsign. Each  message 
  835.      is  preceded by an indication of the source of the  message, 
  836.      such as "L2" or "L4".
  837.      
  838.      At  level 7, with bit 4 set and bit 5 clear, the only  event 
  839.      currently  audited is the use of the Sysop  command,  either 
  840.      directly  or via the manager command. If bit 5 is set,  then 
  841.      all  commands given to the switch are audited,  preceded  by 
  842.      the callsign of the user who entered the command.
  843.      
  844.      Bit  6  controls  CPU health check auditing.  If  set,  then 
  845.      whenever  the internal CPU statistics are updated,  messages 
  846.      are  sent  showing the CPU processor loading total  and  the 
  847.      minimum buffers level ( see STATS for more information ). 
  848.      
  849.      The  audit mask value should be set to 0 when  not  actually 
  850.      being  used.  Do not leave it set to another value  as  this 
  851.      wastes  processor  time. Note also that full auditing  on  a 
  852.      busy  node  makes  things worse. Treat  it  as  a  debugging 
  853.      feature !.
  854.         
  855. 3.13 TALK
  856.         
  857.      Talk  is  a  conferencing command. It  allows  a  number  of 
  858.      stations to hold a simultaneous conference ( a bit like  the 
  859.      CONFERENCE  command  of a DX cluster ). There  is  only  one 
  860.      conference, and stations may connect to it by connecting  to 
  861.      the  node and issuing the TALK command. It may be exited  by 
  862.      disconnecting or issuing the command '/EXIT' at the start of 
  863.      a  line.  ( /EXIT may be abbreviated to /EX, and it  is  not 
  864.      case sensitive ).
  865.      
  866.      Each line sent by a user is copied to all other users in the 
  867.      conference,  preceded by the callsign of the user. The  data 
  868.      will  be  sent as 7 bit data ( ie the most  significant  bit 
  869.      will  be cleared ) unless the appropriate bit is set in  the 
  870.      help flags ( see section 3.5.11 ).
  871.      
  872.      Whenever  a new station enters the conference, or a  station 
  873.      leaves  the conference using the '/EXIT' command, the  other 
  874.      conference users get a message informing them of the  event. 
  875.      These status messages are sent with the callsign of the node 
  876.      rather than the user.
  877.      
  878.      Finally,  when entering the TALK command, a message  may  be 
  879.      sent  to all those users who are connected to the  node  but 
  880.      not  otherwise doing anything. For example if  GxABC  enters 
  881.      the line
  882.         
  883.         
  884.            TALK Hello fred, can I have a chat, type 'TALK'
  885.         
  886.      Then  all other stations connected to the node,  present  in 
  887.      the USER list but idle, get the message
  888.      
  889.         
  890.            GxABC>> Hello fred, can I have a chat, type 'TALK'
  891.         
  892.      displayed on their terminal.
  893.      
  894.      Note that merely connecting to the node does not  constitute 
  895.      being  connected  to the switch. Stations connected  to  the 
  896.      switch appear in the USER list.
  897.      
  898. 3.14 SYSOP
  899.         
  900.      The SYSOP command has been enhanced to increase the level of 
  901.      security offered. One problem of the old system is that  the 
  902.      password is easily visible unless the user repeats the SYSOP 
  903.      command  a number of times. Even then,  correlation  between 
  904.      passwords is easy, so the password needs frequent  changing. 
  905.      To reduce the change period, and make it harder to discover, 
  906.      the node will accept a string of characters and scan it  for 
  907.      the password. Hence a response of, say, 30 or 40  characters 
  908.      can  be  sent,  with a random number  of  random  characters 
  909.      preceding the actual data and a random number following  it. 
  910.      This does not eliminate such attacks, but if used carefully, 
  911.      it makes it quite a bit harder to attack.
  912.      
  913. 3.15 LINKS
  914.         
  915.      This  command shows the current level 2 links to  the  node. 
  916.      Displayed one per line, the two callsigns are shown followed 
  917.      by the link state, port number and current retry count.
  918.         
  919. 3.16 CALIBRATE
  920.         
  921.      This  command  allows  remote  calibration  checks  of   the 
  922.      transmitter deviation. Its syntax is
  923.      
  924.         
  925.                   CALIBRATE period [ toggle ]
  926.         
  927.      The  period ( 1 to 60 seconds ), is the time for  which  the 
  928.      transmitter  will  key  up for with  constant  tone.  It  is 
  929.      undefined  as  to  which tone will be sent.  If  the  second 
  930.      parameter  is given, the node will toggle between the  tones 
  931.      every  [toggle]  seconds. The toggle must be between  1  and 
  932.      [period] seconds. If a period is not given, the user is  not 
  933.      sysop  or manager, or if it is out of range, the command  is 
  934.      ignored.  If the tone generator is busy because it is  about 
  935.      to send a CWID sequence, a 'busy' message is returned.  Note 
  936.      -  quite  often it can appear that the node  has  locked  up 
  937.      having  failed  to transmit the full  calibrate  period.  In 
  938.      fact, this is usually the hardware PTT watchdog in the  TNC. 
  939.      The  node thinks it is still sending but the hardware  timer 
  940.      has removed the PTT signal.
  941.         
  942. 3.17 DXCLUSTER
  943.         
  944.      The DXCLUSTER command operates just like the BBS command  in 
  945.      that  it may be used to effect a connection to  a  DXcluster 
  946.      (assuming there is one nearby). It should be disabled if  it 
  947.      is not intended to be used to access a cluster.
  948.      
  949.      The syntax of the command is :
  950.         
  951.         
  952.                        DXCLUSTER [ * | ? | callsign ]
  953.         
  954.      With  no  parameter,  the  command  connects  to  a  station 
  955.      previously  specified  by the use of the  DXCLUSTER  command 
  956.      with a callsign as a second parameter. Setting the DXCLUSTER 
  957.      to  allow this may only be done by a sysop. The  '*'  option 
  958.      may also only be executed by the sysop, this command  clears 
  959.      a previously specified DXCLUSTER.
  960.      
  961.      The '?' option ( or any text if not sysop ), prints out  the 
  962.      current DXCLUSTER station setting.
  963.      
  964.      If no DXCLUSTER is set, the command issues an error  message 
  965.      if it is invoked with no other parameters.
  966.      
  967.      The  idea  of  this command is that,  like  with  the  'bbs' 
  968.      command  of  the 'BPQ software, a user may  connect  to  the 
  969.      local DXCLUSTER from the node.
  970.         
  971. 3.18 HELP
  972.         
  973.      The  HELP command gives a message from the ROM. In  general, 
  974.      it  is expected that the message will be designed to  assist 
  975.      new users in understanding the operation or configuration of 
  976.      the  node.  The  message may span many  lines,  and  may  be 
  977.      changed  when  the  ROM  is  programmed.  As  delivered,  it 
  978.      contains  a  brief help screen detailing the main (  user  ) 
  979.      changes to the code.
  980.      
  981. 3.19 CTEXT
  982.         
  983.      The CTEXT command sets or displays a message sent to a  user 
  984.      who connects to the node by uplinking to the node's alias.
  985.      
  986.      The syntax of the command is :
  987.  
  988.                   CTEXT [ * | message ]
  989.         
  990.      With no parameter, the current message is displayed. If  the 
  991.      user is also a sysop, and if text follows the command,  that 
  992.      text  is added to the current connect text. If  the  message 
  993.      starts  with  a '*', the connect text  message  is  deleted. 
  994.      Hence,  to  clear the message, type the command  'ctext  *'. 
  995.      This is a change in version X-1J from previous versions. For 
  996.      further information, see section 3.33
  997.      
  998.      A  message is only sent if there is a ctext message set  and 
  999.      if the relevant bit is set in the mode command parameter  as 
  1000.      described in section 3.5.11.
  1001.      
  1002. 3.20 BTEXT
  1003.      
  1004.      The  BTEXT  command sets or displays the  additional  beacon 
  1005.      text sent along with the beacon packets.
  1006.      
  1007.      The syntax of the command is :
  1008.         
  1009.                   BTEXT [ * | message ]
  1010.         
  1011.      With no parameter, the current message is displayed. If  the 
  1012.      user is also a sysop, and if text follows the command,  that 
  1013.      text  is  added to the current beacon text. If  the  message 
  1014.      starts  with  a  '*', the beacon text  message  is  deleted. 
  1015.      Hence,  to  clear the message, type the command  'btext  *'. 
  1016.      This is a change in version X-1J from previous versions. For 
  1017.      further information, see section 3.33
  1018.      
  1019.      Normally, beacon packets are UI frames that contain the node 
  1020.      callsign and alias. If a beacon message is set, the text  of 
  1021.      the  message  follows the alias in the same  packet.  It  is 
  1022.      strongly suggested that beacon packets be kept brief !!!.
  1023.      
  1024. 3.21 ACL
  1025.         
  1026.      This is probably the most complex additional command in  the 
  1027.      program.  It  should be used with care, and  only  when  you 
  1028.      really understand its operation - mistakes can result in the 
  1029.      need  to go out to a remote site ( probably when it is  cold 
  1030.      and wet ) to reconfigure the node.
  1031.      
  1032.      The command allows selective control, based on callsign,  of 
  1033.      a  list of different events. The ACL contains two  types  of 
  1034.      entry,  a default value and zero or more callsigns, each  of 
  1035.      which  are  associated  with  a  value.  When  one  of   the 
  1036.      controlled  events  occurs  ( such as an  incoming  level  2 
  1037.      connection or a nodes broadcast ), the ACL is scanned for an 
  1038.      entry that matches the callsign of the sender. If a match is 
  1039.      found  (  but see below ), the value  associated  with  that 
  1040.      callsign is used to determine the action the node will take. 
  1041.      If no match is found, the default value is used.
  1042.      
  1043.      An ACL function mask is provided. This enables specific  ACL 
  1044.      functions  to be disabled to speed up the node. Each bit  of 
  1045.      the  mask  enables ( if set ) or disables ( if clear  )  the 
  1046.      corresponding  function. For example, if the mask is set  to 
  1047.      2,  the  node will only check its ACL for outgoing  level  2 
  1048.      connections.
  1049.      
  1050.      Each bit of the value or mask controls a different function, 
  1051.      as shown below :
  1052.         
  1053.           BIT      OPERATION
  1054.           =====================================================
  1055.           0    bar incoming level 2 connection
  1056.           1    bar outgoing level 2 connection ( downlink )
  1057.           2    ignore nodes broadcasts from this station
  1058.           3    bar gatewaying at level 3 to/from this station
  1059.           4    bar incoming level 4 connections
  1060.           5    bar outgoing level 4 connections
  1061.           6    ignore SSID in matching an entry
  1062.      
  1063.      So  if for example an entry exists for a callsign G99XXX  of 
  1064.      6, then the node will not allow outgoing level 2 connections 
  1065.      to  the node ( downlinks ), and will ignore node  broadcasts 
  1066.      from that station. Note that these commands only operate  on 
  1067.      the  events  themselves  -  if  G99XXX  creates  a  level  2 
  1068.      connection, the node will quite happily use it itself.
  1069.      
  1070.      The  'ignore ssid' bit is used to match a  callsign  without 
  1071.      regard to its SSID. This makes life interesting when finding 
  1072.      a  match,  so the list is scanned twice, once for  an  exact 
  1073.      match, and then for a match ignoring SSID if an exact  match 
  1074.      is  not found. There can only be one exact match,  but  when 
  1075.      searching  for a match without using SSID, the  first  entry 
  1076.      found will be used.
  1077.      
  1078.      The syntax of the command is as follows ( 4 versions )
  1079.         
  1080.         
  1081.                   ACL * value
  1082.                   ACL & value
  1083.                   ACL callsign + value
  1084.                   ACL callsign -
  1085.         
  1086.      If  you  are not sysop, or if ACL is given on its  own,  the 
  1087.      current contents of the ACL are shown. The first form of the 
  1088.      command changes the default value, the second form sets  the 
  1089.      mask enable value, the third makes an entry in the list, and 
  1090.      the  last form removes an entry from the list. It  complains 
  1091.      about syntax errors.
  1092.      
  1093.      A  few  moments  thought  will show  that  the  sequence  of 
  1094.      commands
  1095.         
  1096.                   connect to node
  1097.                   execute sysop or manager command
  1098.                   type the command ACL * 127
  1099.                   type the command ACL & 127
  1100.                   disconnect
  1101.         
  1102.      is  quite catastrophic. You will not be able to get back  in 
  1103.      again apart from via the host port and noone will be able to 
  1104.      connect  to  or from the node. If you intend  to  experiment 
  1105.      with  the  command, you should start by  entering  your  own 
  1106.      callsign  with  a value of zero to ensure that you  can  get 
  1107.      back in again !!!.
  1108.      
  1109.      The  list  can be used as an 'accept' or  'reject'  list  by 
  1110.      judicious use of the default. To create a list that excludes 
  1111.      specific  calls,  put them into the list with  the  required 
  1112.      bits set in the value. The default should be zero. To create 
  1113.      an 'accept' list, put entries in with the required bits zero 
  1114.      and  set the corresponding bits in the  default.  Individual 
  1115.      bits  may be used to create accept or reject lists for  each 
  1116.      function.
  1117.      
  1118.      The command steals buffers at a rate of one buffer per  four 
  1119.      entries in the ACL. Also, a long ACL will slow the node down 
  1120.      nicely - so think before you enter a long list.
  1121.      
  1122.      This command is for experimental purposes - if you find  any 
  1123.      bugs,  let  me  know please ( I have not  fully  tested  the 
  1124.      gateway  bit  for example ). Also, it is  not  intended  for 
  1125.      malicious use but to allow fine control to be exercised over 
  1126.      backbone networks. If I get lots of negative responses back, 
  1127.      the command will go !
  1128.      
  1129.      The  mask value should be set so that only  those  functions 
  1130.      actually  being used are enabled. For example, if  the  node 
  1131.      has an ACL set to control level 2 uplinks and downlinks,  it 
  1132.      will also check its ACL for all other controlled  operations 
  1133.      such  as level 3 gatewaying. This will result in  much  time 
  1134.      being  wasted searching the list for a result that is  going 
  1135.      to always succeed. In the example cited therefore, the  mask 
  1136.      would be set to 3. On reset, the mask value is set to  zero, 
  1137.      SO  ALL ACL FUNCTIONS ARE DISABLED AND MASK MUST BE  SET  TO 
  1138.      ENABLE THEM !.
  1139.      
  1140. 3.22 CLOSEDOWN
  1141.         
  1142.      The  closedown  command  is  used  to  shut  down  the  node 
  1143.      remotely.   If   successfully  executed,   the   node   will 
  1144.      effectively  stop  operating until it is reset ( e.g.  by  a 
  1145.      power up ). The node's configuration ( routes, messages etc. 
  1146.      )  are  not  destroyed  -  the  node  simply  hits  a   HALT 
  1147.      instruction. You must be sysop to execute the command.
  1148.      
  1149.      The syntax of the command is:
  1150.         
  1151.         
  1152.                        CLOSEDOWN A
  1153.         
  1154.      The  node will respond with 5 numbers just as for  when  the 
  1155.      sysop or manager command was executed. Yes, you guessed, the 
  1156.      node  expects  another password. Give it correctly  and  the 
  1157.      node closes down completely. Get it wrong and you lose  your 
  1158.      sysop status. This obtuse and awkward syntax is designed  to 
  1159.      make sure it is not accidentally executed.
  1160.      
  1161. 3.23 ALIAS
  1162.         
  1163.      The ALIAS command allows the node's alias to be changed. The 
  1164.      syntax is :
  1165.         
  1166.         
  1167.                   ALIAS [ * | new-alias ]
  1168.         
  1169.      If  no  parameter is given, or if the user is not  SYSOP  or 
  1170.      MANAGER,  the  current alias is displayed. If the  alias  is 
  1171.      deemed  to be a valid alias, the node's alias is changed  to 
  1172.      the new one entered. Note that the algorithm that checks for 
  1173.      the  alias  structure  is a bit queer. It  is  however,  the 
  1174.      original  algorithm of TheNet and I am loathe to  change  it 
  1175.      for  fear  of  side effects. Note  too  that  the  companion 
  1176.      CALLSIGN command is NOT included - chaos is not something  I 
  1177.      crave.  If the sysop gives the parameter of '*', the  node's 
  1178.      alias is cleared.
  1179.         
  1180. 3.24 BBSALIAS HOSTALIAS DXCALIAS
  1181.         
  1182.      These commands are used to enable the node to respond to  up 
  1183.      to three additional aliases. The syntax of each is the same, 
  1184.      and by way of example the BBSALIAS syntax is :
  1185.         
  1186.         
  1187.                   BBSALIAS [ * | new-alias ]
  1188.         
  1189.      If  not sysop, if no new alias is specified, or if  it  does 
  1190.      not  pass the weird alias syntax checker ( see 3.23  )  then 
  1191.      the  current  alias  is  displayed. If  not,  the  alias  is 
  1192.      changed. If '*' is given, the alias is cleared.
  1193.      
  1194.      The  aliases  so entered are nothing to do with  the  node's 
  1195.      identity. If a BBS alias is set, for example to MXMBBS, then 
  1196.      the node will listen for level 2 connects to that alias.  It 
  1197.      will  respond to them and will automatically invoke the  BBS 
  1198.      command. The use will also get the optional welcome  (ctext) 
  1199.      message and 'trying to connect to ....' messages if  enabled 
  1200.      by the appropriate 'mode' parameter.
  1201.      
  1202.      The  idea is that where a node sits on a channel  that  does 
  1203.      not  have  access  to the local host, BBS  or  cluster,  the 
  1204.      normal aliases of those stations may be enabled in the  node 
  1205.      to allow consistent access to the local services. Note  that 
  1206.      the  three  stations  do  not have to be  a  BBS,  Host  and 
  1207.      cluster, it could be three BBSes or any other combination.
  1208.         
  1209. 3.25 IPSTATS
  1210.         
  1211.      The  IPstats command has the same basic syntax as the  PARMS 
  1212.      and  MODE  commands.  When invoked  without  parameters,  it 
  1213.      displays  the  current  stats. Each statistic  may  also  be 
  1214.      altered by sysop, as defined in section 3.32.
  1215.      
  1216.      In  addition to the standard IP MIB, there is an  additional 
  1217.      parameter  used  to set the level 2 default modes,  and  the 
  1218.      first  entry  in the MIB is used to enable  or  disable  the 
  1219.      router.
  1220.      
  1221.      The   complete  set  of  IP  MIB  stats  are  included   for 
  1222.      compatibility  with  other IP systems, but several  are  not 
  1223.      used.  Also,  the  stats  are 16 bit  counters  not  32  bit 
  1224.      counters as in NOS. Like NOS however, the stats do not reset 
  1225.      every  hour,  they must be cleared by the sysop.  They  will 
  1226.      however wrap around at zero.
  1227.      
  1228.      The entries are:
  1229.         
  1230.              1    Port default modes
  1231.              2    Enable / Disable the IP router functions
  1232.              3    Default IP Time To Live
  1233.              4    IP Received frames
  1234.              5    IP Header Errors
  1235.              6    IP Input Address Errors
  1236.              7    IP Forwarded Datagrams
  1237.              8    IP Unknown Protocols
  1238.              9    IP input frames Discarded
  1239.              10   IP Input frames Delivered
  1240.              11   IP Output Requests
  1241.              12   IP Output Discards 
  1242.              13   IP Output No Routes errors
  1243.              14   IP Reassembly Timeout errors
  1244.              15   IP Reassembly Required errors
  1245.              16   IP Reassembly OKs
  1246.              17   IP Reassembly Fails
  1247.              18   IP Fragmentations completed OK
  1248.              19   IP Fragmentation Failures
  1249.              20   IP Fragmentation Creates
  1250.         
  1251.      The  default mode word may be set to 0, 1, 2 or 3. Each  bit 
  1252.      controls a port, with bit 0 controlling port 0 ( radio port) 
  1253.      and bit 1 controlling port 1 ( RS232 port ). When set to  1, 
  1254.      the  default  mode for that port when sending on a  level  2 
  1255.      connection  will  be Datagram. When set to 0 it will  be  by 
  1256.      Virtual  Circuit.  The default mode is used  when  no  other 
  1257.      information is given, either by the ARP table or by the  TOS 
  1258.      bits in the IP header.
  1259.      
  1260.      The enable / disable word may be set to 0 or 1. When set  to 
  1261.      0, the operation of the router is stopped, when set to 1 the 
  1262.      router functions.
  1263.      
  1264.      The  IP Time To Live ( TTL ) word is used to set the  number 
  1265.      of  routers through which an IP frame may pass before it  is 
  1266.      discarded.  It is similar to the node layer 3 TTL  word.  It 
  1267.      may  be set to any value up to 255, but values below 2  make 
  1268.      no sense and are therefore not permitted.
  1269.         
  1270.      The IP fragmentation reassembly timeout counter is not  used 
  1271.      as  the node is just a router. It is left set to 30  seconds 
  1272.      just to show which one it is !
  1273.      
  1274.      The  rest  are just statistics. The patient  user  can  have 
  1275.      hours  of fun working out which ones are not used ( or  just 
  1276.      think about it for a second or two ).
  1277.         
  1278. 3.26 IPADDRESS & IPBROADCAST
  1279.         
  1280.      These  commands are used to set or display the IP  addresses 
  1281.      used by the node. The syntax of each is (by way of example):
  1282.         
  1283.         
  1284.                   IPADDRESS [ ipaddress ]
  1285.         
  1286.      where ipaddress is in the form 
  1287.         
  1288.         
  1289.                   nnn.nnn.nnn.nnn 
  1290.         
  1291.      where nnn is an integer in the range 0..255
  1292.      
  1293.      So  to set the node IP broadcast address to that  used  over 
  1294.      here, the command would be :
  1295.         
  1296.         
  1297.                   IPBROADCAST 44.131.0.0
  1298.         
  1299.      The IPADDRESS is the address that the node will respond  to. 
  1300.      It  is used only as detailed in section 7. The IP  broadcast 
  1301.      address  is  the one used to denote broadcast  packets  that 
  1302.      will  be largely ignored. Note that port addressing  is  NOT 
  1303.      currently supported. Anyone who finds this limiting, drop me 
  1304.      a line and I'll see if I can change it.
  1305.         
  1306. 3.27 IPROUTE
  1307.         
  1308.      This is one of the two main databases used by the node.  The 
  1309.      IP  Route table is used to tell the router where to  send  a 
  1310.      frame  for  a  specific destination. It  maps  addresses  or 
  1311.      address  ranges to a gateway IP address and  to  sub-network 
  1312.      ports.  The  ARP database then tells the node  what  station 
  1313.      corresponds to that address and protocol. The node  supports 
  1314.      two subnet protocols, AX25 and Net/Rom.
  1315.      
  1316.      The  database  is stored in an ordered list,  in  decreasing 
  1317.      order  of  the number of relevant bits. This  is  to  permit 
  1318.      searching  of  the database when trying to find  a  specific 
  1319.      destination.  Given  an  address, it  scans  addresses  with 
  1320.      decreasing  numbers  of  bits until it finds  a  match.  The 
  1321.      syntax of the command is as follows :
  1322.      
  1323.      
  1324.              IPROUTE [address [ / bits ][ + port [gateway [metric]]]]
  1325.         
  1326.      or
  1327.         
  1328.         
  1329.              IPROUTE [address [ / bits ][ - ]]
  1330.         
  1331.      In  the first form, it makes an entry in the table,  in  the 
  1332.      second it deletes one. Only sysop or manager may effect such 
  1333.      a change. The parameters are as follows :
  1334.         
  1335.              address  The    amprnet   address   in   the    form 
  1336.                       nnn.nnn.nnn.nnn
  1337.              bits     The   number   of  significant   bits   (eg 
  1338.                       44.131.0.0 / 16)
  1339.              port     The  port, either 0 or 1 for AX25 or n  for 
  1340.                       Net/Rom
  1341.              gateway  The   optional  gateway  for   this   dest. 
  1342.                       nnn.nnn.nnn.nnn
  1343.              metric   Currently not used, a numeric value
  1344.         
  1345.      When  an entry is made with a specific number of  bits,  the 
  1346.      address  is  'masked  off' to that many bits,  so  enter  an 
  1347.      address  of  44.131.16.31 / 24 and it will  get  entered  as 
  1348.      44.131.16.0.  The valid range for the number of bits is 1  - 
  1349.      32.
  1350.         
  1351.         
  1352. 3.28 ARP
  1353.         
  1354.      The  ARP  table  maps a pair  of  address+port  to  hardware 
  1355.      address+subnetwork mode. The address is either a destination 
  1356.      or  a gateway in the form nnn.nnn.nnn.nnn. The  protocol  is 
  1357.      either  Net/Rom or AX25. The hardware_address is a  callsign 
  1358.      and the subnetwork mode is DG or VC ( only has  significance 
  1359.      for level 2 links ).
  1360.      
  1361.      The syntax of the command is :
  1362.      
  1363.      
  1364.           ARP [ destination [ + [P] protocol callsign [ mode ]]]
  1365.      
  1366.      or
  1367.         
  1368.           ARP [ destination [ - protocol ] ]
  1369.      
  1370.      
  1371.      In  the  first form an entry is made in the  table,  in  the 
  1372.      second an entry is deleted. This is only permitted for sysop 
  1373.      or manager.
  1374.         
  1375.      The parameters are :
  1376.      
  1377.           destination    An address of the form nnn.nnn.nnn.nnn
  1378.           P              If   present,   marks   the   entry   as 
  1379.                          'published'
  1380.           protocol       AX25 or Net/Rom
  1381.           callsign       A valid amateur callsign, e.g. G8KBB-5
  1382.           mode           DG or VC
  1383.      
  1384.      If  'P' is entered, then the node will publish the  address. 
  1385.      Specifically,  if an ARP request is seen by the node  for  a 
  1386.      station  with  the address given, it will  send  a  response 
  1387.      advising the caller of the callsign to be used.
  1388.      
  1389.      More details on the operation of the router are contained in 
  1390.      section 7.
  1391.         
  1392. 3.29 UI
  1393.         
  1394.      The  UI command allows a string to be sent as a Level  2  UI 
  1395.      frame. The syntax is
  1396.      
  1397.         
  1398.                   UI dest string_of_text_ending_in_return
  1399.         
  1400.      Dest  is  a callsign like destination such as  'MAIL'.  What 
  1401.      will  happen is that a single UI frame will be sent  with  a 
  1402.      source  callsign  of  the user who entered  the  command,  a 
  1403.      destination callsign of dest, and the rest of the string  as 
  1404.      text.
  1405.      
  1406.      It  is designed to be used in situations where a  local  BBS 
  1407.      does not have access to a common channel and wishes to  send 
  1408.      mail notification packets. Not surprisingly, the ability  to 
  1409.      do this is BBS specific.
  1410.         
  1411. 3.30 MTU command
  1412.         
  1413.      The  MTU  command is used to configure  the  node's  Maximum 
  1414.      Transmission Unit figures ( primarily for TCP/IP support  ). 
  1415.      In  general, they should be left at the default  values.  Do 
  1416.      not  experiment  unless  you are  sure  you  understand  the 
  1417.      significance of what you are doing !!!!
  1418.      
  1419.      The syntax of the command is identical to the syntax of  the 
  1420.      PARMS and MODE commands, as defined in section 3.32.
  1421.      
  1422.      There are 5 values configured by the command. These are :
  1423.         
  1424.           No.  Default   Function
  1425.           ========================================================== 
  1426.           1      256    Sets  the  MTU for the IP  router,  AX.25 
  1427.                         Level 2, Radio port ( port 0 )
  1428.           2      256    Sets  the  MTU for the IP  router,  AX.25 
  1429.                         Level 2, RS232 port ( port 1 )
  1430.           3      236    Sets  the MTU for the IP  router  Net/Rom 
  1431.                         interface
  1432.           4      257    Sets  the  maximum number of  data  bytes 
  1433.                         permitted  in  an  AX.25  level  2  frame 
  1434.                         before  an error response is returned  to 
  1435.                         the sender ( frame too long )
  1436.           5      328    Sets   the   maximum  number   of   bytes 
  1437.                         permitted  in  a level  2  packet.  Above 
  1438.                         this,  frames are discarded. If a  packet 
  1439.                         may contain 256 data bytes, and a maximum 
  1440.                         length address of sender, recipient and 8 
  1441.                         digis comprises 70 bytes, and 2 bytes are 
  1442.                         used  for  control  bits,  the  total   ( 
  1443.                         256+70+2   )  is  the  setting  of   this 
  1444.                         parameter.
  1445.      
  1446.      This command replaces the ROM patching needed for TheNet  X-
  1447.      1H.
  1448.      
  1449.      The minimum that an MTU may be set to is 64, the maximum  is 
  1450.      1024, but large packets increase the probability of crashing 
  1451.      the node. Beware !!!!!!.
  1452.      
  1453.      The  MTU for the Net/Rom port should not in general  be  set 
  1454.      higher than 236 or it will not be compatible with Net/Rom.
  1455.      
  1456.      The limits on the other two correspond to those necessary to 
  1457.      support frames in the range 256 - 1024 data bytes long.
  1458.         
  1459. 3.31 METER command
  1460.         
  1461.      This  command's syntax is similar to the PARMS command,  and 
  1462.      includes the new syntax as described in the overview  guide, 
  1463.      section 3.32.
  1464.      
  1465.      It  allows the following parameters to be  controlled.  Note 
  1466.      that the parameter list differs from TheNet X-1J, where  the 
  1467.      first  (  and  onlyt ) parameter  was  the  deviation  meter 
  1468.      scaling factor.
  1469.      
  1470.              1  The meter mode flags
  1471.              2  The deviation meter scaling factor
  1472.              3  The signal strength meter noise floor value
  1473.              4  The S meter display format multiplier
  1474.              5  The dBm meter display format multiplier
  1475.              6  The dBm noise floor value
  1476.              7  The voltmeter channel 1 multiplier 
  1477.              8  The voltmeter channel 2 multiplier
  1478.              9  The voltmeter channel 1 offset value
  1479.              10 The voltmeter channel 2 offset value
  1480.         
  1481. 3.31.1  The meter mode flags
  1482.         
  1483.      Each  bit of this parameter controls a different  aspect  of 
  1484.      the meters as shown below
  1485.      
  1486.           BIT   If set, then ....
  1487.           ======================================================
  1488.            0    The deviation meter is enabled
  1489.            1    The signal strength meter is enabled
  1490.            2    The  signal strength is shown as S points  rather 
  1491.                 than dBm
  1492.            3    ADC channel 3 is enabled ( voltmeter channel 1 )
  1493.            4    ADC channel 4 is enabled ( voltmeter channel 2 )
  1494.            5    Voltmeter  channel 1 divisor is 1000 rather  than 
  1495.                 100
  1496.            6    Voltmeter  channel 2 divisor is 1000 rather  than 
  1497.                 100
  1498.            7    Voltmeter  channel  1  displays  fine  resolution 
  1499.                 rather than integers
  1500.            8    Voltmeter  channel  2  displays  fine  resolution 
  1501.                 rather than integers
  1502.         
  1503. 3.31.2  The deviation meter scaling factor
  1504.      
  1505.      This  is the parameter previously described in section  3.31 
  1506.      of  the  overview  guide.  It  scales  the  deviation  meter 
  1507.      display.  One change however from X-1J. Setting it  to  zero 
  1508.      does  not disable the deviation meter - bit 0 of  the  meter 
  1509.      mode word as described above controls whether it is enabled.
  1510.      
  1511.      When  set  to  a value in the range 1 - 255,  the  meter  is 
  1512.      enabled  and the value is used as a scaling factor. The  ADC 
  1513.      is an 8 bit device, so it will give a response in the  range 
  1514.      0 - 255, corresponding to an ADC input voltage in the  range 
  1515.      0 - 3 volts DC. If optimally configured, this corresponds to 
  1516.      the  maximum  audio level possible for  the  given  receiver 
  1517.      discriminator.
  1518.      
  1519.      The  ADC  reading  ( 0 - 255 ) is multiplied  by  the  meter 
  1520.      parameter value ( 1 - 255 ) to give an answer in the range 0 
  1521.      to  65 KHz ( approx. ). This is the value displayed  in  the 
  1522.      mheard list.
  1523.      
  1524.      Hence, if, for example, a DC voltage of 2 volts at the input 
  1525.      to the ADC corresponds to 3.4 KHz deviation, the ADC reading 
  1526.      will  be 171 ( +- a few ) and the Meter parameter will  need 
  1527.      setting to 20 ( ie to 3400 / 171 ).
  1528.      
  1529.      If  the  ADC  reading is 254 or higher,  then  in  order  to 
  1530.      indicate  an  overrange,  the symbol '>'  will  precede  the 
  1531.      corresponding deviation entry in the heard list.
  1532.      
  1533.      
  1534. 3.31.3  The signal strength meter noise floor value
  1535.         
  1536.      This parameter sets the 'no signal' offset applied to  input 
  1537.      readings  from the signal strength meter. It  is  subtracted 
  1538.      from the count read from the ADC to give a reading based  on 
  1539.      a  no  signal  value of zero. If the no  signal  (  noise  ) 
  1540.      reading is, for example 0.65V, corresponding to an ADC count 
  1541.      of 256 * 0.65 / 3 or 54, then 54 is subtracted from each ADC 
  1542.      signal strength reading to give an integer from 0 to 201 for 
  1543.      an input reading between 54 and 255.
  1544.      
  1545. 3.31.4  The S meter display format multiplier
  1546.         
  1547.      This  parameter  operates  in a similar manner  to  the  dBm 
  1548.      multiplier  (  section  3.31.5  )  but  having  divided  the 
  1549.      intermediate  result by 256, that value is displayed  as  an 
  1550.      integer  in the range 0 to 9 preceded by the letter 'S'.  If 
  1551.      the  value exceeds 9, it is displayed as 'S9+'. If  the  dBm 
  1552.      multiplier  has  been  set  up  correctly,  then  set   this 
  1553.      parameter to the dBm multiplier divided by the number of  dB 
  1554.      per S point.
  1555.      
  1556. 3.31.5  The dBm meter display format multiplier
  1557.         
  1558.      This  parameter  is used to convert an ADC reading  for  the 
  1559.      signal  strength meter into a dB count. The ADC  reading  is 
  1560.      converted  into  a  count  from 0 to  n,  according  to  the 
  1561.      description   contained  in  section  3.31.3.  It  is   then 
  1562.      multiplied by this parameter and divided by 256. When  added 
  1563.      to the dBm noise floor value ( section 3.31.6 ), this  gives 
  1564.      the displayed dBm value in the heard list.
  1565.         
  1566. 3.31.6  The dBm noise floor value
  1567.         
  1568.      This is the noise floor ( dBm ) reading that corresponds  to 
  1569.      the  zero  count  in  section 3.31.3. It  is  entered  as  a 
  1570.      positive  count  corresponding  to  a  negative  value.  For 
  1571.      example, if the zero point in the example of section  3.31.3 
  1572.      is -113 dBm, the noise floor value entered is 113.
  1573.         
  1574. 3.31.7 The voltmeter channel 1 multiplier
  1575.         
  1576.      This  is the multiplier that controls voltmeter channel 1  ( 
  1577.      ADC  channel  3 ). It is set as described  in  section  3.34 
  1578.      below.
  1579.         
  1580. 3.31.8  The voltmeter channel 2 multiplier
  1581.         
  1582.      This  is the multiplier that controls voltmeter channel 2  ( 
  1583.      ADC  channel  4 ). It is set as described  in  section  3.34 
  1584.      below.
  1585.         
  1586. 3.31.9    The voltmeter channel 1 offset value
  1587.         
  1588.      This is the value subtracted from the ADC reading before  it 
  1589.      is  multiplied by the multiplier parameter. It is  described 
  1590.      more fully in section 3.34 below.
  1591.         
  1592. 3.31.10   The voltmeter channel 2 offset value
  1593.         
  1594.      This is the value subtracted from the ADC reading before  it 
  1595.      is  multiplied by the multiplier parameter. It is  described 
  1596.      more fully in section 3.34 below.
  1597.         
  1598. 3.32 PARM, MODE, MTU, METER & IPSTATS command syntax
  1599.         
  1600.      The syntax of these commands has changed.
  1601.      
  1602.      All  use the same syntax, which may be either of two  types, 
  1603.      the  original  TheNet  1.01 syntax (  as  used  in  versions 
  1604.      previous to X-1J ) or an 'offset & value' type.
  1605.      
  1606.      The original syntax was, by way of example, 
  1607.      
  1608.      
  1609.           PARM { [ * | new_value ] [ * | new_value ] .......... }
  1610.         
  1611.         
  1612.      so to set the 10th PARM ( the L4 retries ) to 1, the  syntax 
  1613.      would be :
  1614.      
  1615.      
  1616.           PARM * * * * * * * * * 1
  1617.         
  1618.         
  1619.      The equivalent new syntax command would be :
  1620.         
  1621.         
  1622.           PARM / 10 1
  1623.         
  1624.      
  1625.      The '/' command signifies that what follows is the parameter 
  1626.      number  followed  by the new value. As for the  old  command 
  1627.      syntax,  the  complete  list  of  parameters  is  displayed. 
  1628.      Setting  the  parameters may only be done by a  Sysop.  Note 
  1629.      that  BOTH  command  syntaxes are supported -  you  can  use 
  1630.      whichever you prefer.
  1631.      
  1632. 3.33 BTEXT, INFO and CTEXT Command Syntax
  1633.         
  1634.      In  Version X-1J, the syntax of these commands  changed.  In 
  1635.      addition, the Info message was doubled in size to 160 bytes.
  1636.      
  1637.      If  someone who is not Sysop uses the command,  the  current 
  1638.      settings are displayed.
  1639.      If  a Sysop uses it without any additional  parameters,  the 
  1640.      current setting is displayed.
  1641.      If  a  Sysop  enters  one of  the  commands  followed  by  a 
  1642.      parameter of '*', the current message is deleted.
  1643.      If  a Sysop enters a string of text, that text is  added  to 
  1644.      the current message, followed by a newline.
  1645.      
  1646.      It is therefore possible to build up multiple line messages. 
  1647.      If  you wish to start a message with a blank line,  enter  a 
  1648.      message  with  a  non  display  (  or  innocuous  display  ) 
  1649.      character such as control-A. It will get entered followed by 
  1650.      a  newline. On most systems this will not display.  On  some 
  1651.      systems such as PCs running NOS, it will display as a smiley 
  1652.      face.
  1653.      
  1654. 3.34 The ADC command
  1655.         
  1656.      This  command  is  used  to read the  voltages  on  the  ADC 
  1657.      channels 3 and 4 ( referred to as the 'voltmeter channels  1 
  1658.      and 2' in the documentation. 
  1659.  
  1660.      A typical display is shown below :
  1661.         
  1662.                        IPNET:G8KBB-5}
  1663.                        13.2 V DC
  1664.                        -5 deg C
  1665.         
  1666.      Each  channel  is associated with a scaling  factor  in  the 
  1667.      METER  command, an offset value, two control flags and  each 
  1668.      meter may be enabled or disabled by setting or clearing  the 
  1669.      appropriate  bit  in  the meter control  flags  word  (  see 
  1670.      section 3.31 ). Finally, each has a textual string that  may 
  1671.      be appended to the reading, as shown in the above examples.
  1672.      
  1673.      The displayed voltage is shown as 
  1674.      
  1675.           ( meter_reading - offset_value ) * Scaling_factor / n
  1676.         
  1677.      where  n  is  100 or 1000 depending on the  setting  of  the 
  1678.      resolution  bit ( see section 3.31.1 ). The  calculation  is 
  1679.      done  with 16 bit signed registers, so it is important  that 
  1680.      the intermediate result of 
  1681.      
  1682.           (meter_reading - offset_value ) * Scaling_factor
  1683.      
  1684.      lies in the range -32768 to + 32767, hence the choice of n.
  1685.      
  1686.      It  is shown with a resolution of either 1 or 0.1  depending 
  1687.      on the resolution flag, as described in section 3.31.1. 
  1688.      
  1689.      By way of example, with a scaling factor of 71, a resolution 
  1690.      of 'fine', an offset of 0 and a divisor of 1000 will give  a 
  1691.      display  ranging from 0 to 18.1V in steps of 100 mV  for  an 
  1692.      input  in the range 0 to 3V DC input to the ADC. By  setting 
  1693.      the  scaling factor and divisor accordingly, it is  possible 
  1694.      to  create a meter with full scale readings up to 320V.  For 
  1695.      the 18 V fsd meter, a resistor from ground to the ADC  input 
  1696.      of 2.2K with a resistor from the ADC input to the voltage to 
  1697.      be  measured  of 11K will give the correct  display  with  a 
  1698.      scaling  factor  of 71 and an ADC reference of 3V (  with  a 
  1699.      slight  error  that  can be corrected by  tweaking  the  ADC 
  1700.      reference ).
  1701.      
  1702.      The  facility may be used to create a temperature  meter  by 
  1703.      connecting  a  suitable sensor to the ADC input.  This  will 
  1704.      usually give a value that ranges over a portion of the input 
  1705.      range for a range of temperatures. The reason for the offset 
  1706.      value  and  use of signed arithmetic is to allow  the  input 
  1707.      reading   to   be  converted  into  a  direct   display   of 
  1708.      temperature.   Full  details  are  contained  in  the   file 
  1709.      'temp.doc', but by way of example, if the input probe  gives 
  1710.      a  range of 0 to 2.6 V for a temperature display of  -40  to 
  1711.      +90 degrees Celcius, the settings would be
  1712.         
  1713.                        offset = 68
  1714.                        scaling factor = 59
  1715.                        divisor = 100 ( control bit cleared ) 
  1716.                        resolution = coarse ( control bit cleared )
  1717.         
  1718.      and  for a corresponding Farenheit display of -40  to  +194, 
  1719.      the settings would be
  1720.         
  1721.                        offset = 38
  1722.                        scaling factor = 106
  1723.                        divisor = 100 ( control bit cleared ) 
  1724.                        resolution = coarse ( control bit cleared )
  1725.         
  1726.      Note  that there is little point using the  fine  resolution 
  1727.      mode for these displays.
  1728.      
  1729.      The  ADC  channels  are read whenever  the  ADC  command  is 
  1730.      issued,  interrupts being disabled for 100 microseconds  for 
  1731.      each   reading  on  a  4.9  MHz  TNC2.  The  ADC  needs   40 
  1732.      microseconds  to convert the data, and the 100  microseconds 
  1733.      allows for a 10 MHz TNC2 to be used.
  1734.         
  1735. 3.35 ADC1 and ADC2 commands
  1736.         
  1737.      These commands are used to set a textual string that follows 
  1738.      the ADC readings. The format and parsing is the same as  for 
  1739.      the INFO and similar commands ( see section 3.31 ), but  the 
  1740.      length is only 8 characters. The same routines were used  to 
  1741.      save space but this is not really an ideal way to do it.  To 
  1742.      set  a  string, the previous must be cleared  with  the  '*' 
  1743.      option, and a new string entered. If the string is less than 
  1744.      7  characters long it will be followed by a  newline.  These 
  1745.      strings  are  not preset in the EPROM and will  need  to  be 
  1746.      entered  after a coldstart. All other meter  parameters  may 
  1747.      have ROM defaults.
  1748.         
  1749. 4. Other Changes
  1750.         
  1751.      This  section covers the other miscellaneous changes to  the 
  1752.      software.
  1753.         
  1754. 4.1 Command Processor
  1755.         
  1756.      The command processor has been altered. In general, but  not 
  1757.      in  all cases, commands only appear on the 'help' menu  when 
  1758.      they are enabled, so for example the 'BBS' command will  not 
  1759.      be  shown  unless  it  has been enabled  with  the  'BBS  +' 
  1760.      command.  The  exception is the sysop commands,  like  MODE, 
  1761.      LINKS  and PARMS, which are never shown to users but are  of 
  1762.      interest  to them. If the appropriate bit is set however  in 
  1763.      the  MODE  command  ( see 3.5.11 ), then for  the  sysop  or 
  1764.      manager,  all commands appear in the help prompt -  EVEN  IF 
  1765.      DISABLED.
  1766.      
  1767.      The help screen now shows commands in a combination of upper 
  1768.      and lower case characters.
  1769.      
  1770.      Some  commands  however are never displayed in  the  command 
  1771.      lists,  even when enabled. An example of this is  the  PARMS 
  1772.      command.  This is controlled by a flag associated with  each 
  1773.      command  in the same way that the command enable  /  disable 
  1774.      bit is associated with each command.
  1775.      
  1776.      An  addition to the command syntax controls this. A  command 
  1777.      is  displayed  to  a user only when it is  enabled  and  its 
  1778.      display bit is set. The display bit is set by using the  '+' 
  1779.      command with the letter 'D' following the '+'. Conversely it 
  1780.      is cleared by using the '-' option followed by 'D'. Hence to 
  1781.      display  the  PARMS command in the user  command  list,  the 
  1782.      sysop enters
  1783.      
  1784.                        parms + d
  1785.         
  1786.      or to hide the STATS command whilst still leaving it open to 
  1787.      users to use, the sysop enters
  1788.      
  1789.                        stats - D
  1790.         
  1791.      The 'D' may be in upper or lower case. 
  1792.      The full syntax of the command modifier is therefore
  1793.         
  1794.                        command [ - | +  [ D ] ]
  1795.         
  1796.      If  no letter follows the '+' or '-', or if it is  not  'D', 
  1797.      then  the  command enable / disable flag  is  modified.  The 
  1798.      letter 'D' may be in upper or lower case.
  1799.         
  1800.         
  1801. 4.2 Beacon digi
  1802.         
  1803.      It is possible to set a digi in the address used for  beacon 
  1804.      packets.  Details  of how to do this are  contained  in  the 
  1805.      configuration  guide. Note that this is provided  for  those 
  1806.      rare occasions when there is a genuine need. This is  rarely 
  1807.      the case and should not be done unless really necessary.
  1808.         
  1809. 4.3 Nodes Broadcasts after power-up
  1810.         
  1811.      The node will now broadcast its node table 60 seconds  after 
  1812.      power-up.  This is to ensure that the network is back to  an 
  1813.      operational  state  as  soon as possible  following  a  node 
  1814.      reset.  The reason for the short delay is to cater  for  the 
  1815.      situation  where the Sysop switches on the node  before  the 
  1816.      radio.
  1817.         
  1818. 4.4 TexNet interface handling
  1819.         
  1820.      The TexNet interface is controlled by bit 7 of the user help 
  1821.      messages  word  ( MODE parameter number 12 ). If  set  to  a 
  1822.      value between 128 and 255, the TexNet interface is  enabled. 
  1823.      With values between 0 and 127 it is disabled.
  1824.      
  1825.      When disabled, operation is as normal.
  1826.      
  1827.      When enabled, the node will react to the TexNet "***  LINKED 
  1828.      to.."  messages.  When a level 2 connection to the  node  is 
  1829.      made, the node will examine the first line of text  received 
  1830.      by  the  node.  It must be a line of text  terminated  by  a 
  1831.      return  character,  and it must be the first  line  of  text 
  1832.      received. If any other line is received first, the node will 
  1833.      issue an error message.
  1834.      
  1835.      The line is checked to see if it starts with the text
  1836.         
  1837.                        *** LINKED to
  1838.         
  1839.      It  must start in the first character of the line and  match 
  1840.      exactly the string shown. If it does, the text that  follows 
  1841.      the string is scanned for a valid callsign. If one is found, 
  1842.      the user call is remapped so that any subsequent actions  of 
  1843.      that user are attributed to that new callsign. Any text that 
  1844.      follows  the  callsign  ( including any  TexNet  SSID  )  is 
  1845.      ignored.
  1846.      
  1847.      So, for example, if the string
  1848.         
  1849.                        *** LINKED to WB4DDP  E something else
  1850.         
  1851.      is received by a node ANODE:G8KBB from a station G9BF,  then 
  1852.      the session, otherwise attributable to G9BF will be remapped 
  1853.      to WB4DDP. The 'E' that followed was an SSID of 14, which is 
  1854.      ignored.
  1855.      
  1856.      The heard list will show the following
  1857.         
  1858.                        ANODE:G8KBB} TheNet X-1J2 (644)
  1859.                        TexNet(G9BF WB4DDP)
  1860.         
  1861.      Any  actions by that user, such as conferencing  or  onwards 
  1862.      connection to other nodes will use the callsign WB4DDP. If a 
  1863.      remote  disconnect  causes  reconnection to  the  node,  the 
  1864.      remapped callsign will continue to be used.
  1865.      
  1866.      Note  that only one station at a time may use  a  connection 
  1867.      between  a TexNet node and a TheNet node as it references  a 
  1868.      remapped  level  2  connection. It is  however  possible  to 
  1869.      connect to the callsign or alias of the node and invoke  the 
  1870.      remapping function.
  1871.      
  1872.      When  the  TexNet remapping is done, then the  connect  text 
  1873.      message  will be sent to the user if the connect message  is 
  1874.      set  and  enabled. If the node sees a packet with  a  TexNet 
  1875.      PID, it will note that station as TexNet in the heard list.
  1876.         
  1877.         
  1878. 5. CWID keyer.
  1879.         
  1880.      The  CWID  keyer  sends  the  station  callsign  in  CW   by 
  1881.      alternating  between the two modem tones. This is  nominally 
  1882.      sent  at  20 wpm once every 30 minutes, but  the  speed  and 
  1883.      period can be changed remotely. 
  1884.      
  1885.      After  a delay of 30 minutes, the callsign is sent  appended 
  1886.      to  the  end of the next data packet that is sent  over  the 
  1887.      air.  There  is  a 500 ms delay after the end  of  the  data 
  1888.      packet before the call is sent.
  1889.      
  1890.      The program prefers to send CWIDs appended to ordinary  data 
  1891.      packets. However, if one minute after the CWID has  supposed 
  1892.      to be sent it is still pending because no data packets  have 
  1893.      been  sent, it will key up the transmitter anyway.  Persist, 
  1894.      TxDelay  and other parameters are honoured, but the  process 
  1895.      involves  changing  the  SIO  mode and  this  will  have  an 
  1896.      annoying effect on any packets being received in full duplex 
  1897.      mode.
  1898.      
  1899.      
  1900. 6. Version X-2.
  1901.         
  1902.      X-1 was the first release of this code. The objective is  to 
  1903.      get  some  practical feedback and test the code  before  the 
  1904.      full release, version X-2, which I hope will be very similar 
  1905.      to  this release ( X-1J ). I have been saying this for  some 
  1906.      time  now, but things keep getting added. This  is  probably 
  1907.      the last in the TheNet X-1 series. The next version will  be 
  1908.      a joint release with Bill Beech, NJ7P with Jack, N7OO, doing 
  1909.      documentation.
  1910.      
  1911.      Version  X-1A added the escape-N command and the  change  to 
  1912.      the connect, nodes and reset commands. The timers were  also 
  1913.      added to the stats command.
  1914.      
  1915.      Version X-1B removed all the escape commands apart from C, D 
  1916.      and P. It also added the MODE command and extended the + and 
  1917.      - command qualifiers to all commands.
  1918.      
  1919.      Version  X-1C  added  TALK, MANAGER  and  AUDIT.  The  SYSOP 
  1920.      command  was  enhanced and the INFO command was  altered  to 
  1921.      limit  the  length  of a message ( a  bug  in  the  original 
  1922.      version of TheNet ). The help screen was changed to  display 
  1923.      commands in a combination of upper and lower case.
  1924.      
  1925.      Version  X-1D extended the auditing and statistics to  cover 
  1926.      auditing everything but level 3, and statistics of the  CPU, 
  1927.      Level 1, Level 2 and timers.
  1928.      
  1929.      Version  X-1E  added  beacon  timer  control,  the   connect 
  1930.      redirector, the nodes dump facility, level 3 & 4  statistics 
  1931.      and the LINKS and CALIBRATE commands.
  1932.      
  1933.      Version  X-1F  added the CLOSEDOWN, DXCLUSTER,  ACL,  CTEXT, 
  1934.      HELP and BTEXT commands. Another parameter was added to  the 
  1935.      MODE command to control textual messages. The mod  suggested 
  1936.      by DF2AU to correct the DCD latchup was included. Additional 
  1937.      statistics were added covering CRC errors, receiver overrun, 
  1938.      transmitter underrun and framing errors.
  1939.      
  1940.      Version X-1G added mainly the IP router, with the  following 
  1941.      commands  to control it - IPROUTE, ARP, IPSTATS,  IPADDRESS, 
  1942.      IPBROADCAST. In addition, the ALIAS, BBSALIAS, HOSTALIAS and 
  1943.      DXCALIAS commands crept in, as did QUIT as an alternative to 
  1944.      BYE.  The  help  messages extended to enable  nodes  in  the 
  1945.      routes  list to appear as alias:callsign, and an extra  byte 
  1946.      on the MODE command allowed '#' nodes to be selectively  NOT 
  1947.      broadcast.  The order of HELP and HOST commands  changed  so 
  1948.      that  'h'  on  its  own gave help not  host.  The  code  was 
  1949.      optimised  with  some time critical parts being  recoded  in 
  1950.      assembler and a peephole optimiser being used for additional 
  1951.      improvements.
  1952.      
  1953.      Version X-1H fixed 3 bugs in X-1G.
  1954.      
  1955.      Version  X-1J  added the deviation meter  support  with  the 
  1956.      Meter  command and Mheard changes. In  addition,  parameters 
  1957.      were  added  to the MODE command for  slime  trail  control, 
  1958.      control of digipeating and reconnection to node. The command 
  1959.      syntax  of  Info,  Btext and Ctext was  changed  to  support 
  1960.      multiple lines and the Info message space was doubled to 160 
  1961.      bytes. Nodes broadcasts now occur 60 seconds after power  up 
  1962.      and  the ARP Digi bug fix was included. The level 4  minimum 
  1963.      retries was dropped to 1 and the PARM, MODE, IPSTATS,  METER 
  1964.      and  MTU  command syntax was extended to support  'offset  & 
  1965.      value' type operation. An MTU command was added to allow  IP 
  1966.      MTU  limits to be changed under software control.  The  node 
  1967.      alias  case  sensitivity bit and TALK 8 bit data  bits  were 
  1968.      added.
  1969.      
  1970.      Version  X-1J Release 2 fixed a couple of bugs, added the  S 
  1971.      meter  function, voltage reading functions, TexNet  handling 
  1972.      and extended the command enable / disable switches with  the 
  1973.      'command - D'  syntax.
  1974.      
  1975.      If  you read this and say 'Pah. it doesn't do XXXXX' or  'It 
  1976.      still  doesn't  do YYYYY' or anything of a  similar  nature, 
  1977.      don't  keep  it to yourself. Tell me. I may well do  it.  An 
  1978.      example of this are the many changes introduced into X1-J as 
  1979.      a result of suggestions mainly by KA2DEW.
  1980.         
  1981. 7. The IP router
  1982.         
  1983.      The IP router co-exists in the node with the other software. 
  1984.      It is connected to the L2 and L3(Net/Rom) protocol machines, 
  1985.      and is managed from the L7 switch. It will accept data  from 
  1986.      L2  Datagrams, L2 Virtual Circuits or NOS protocol  extended 
  1987.      Net/Rom  frames. It will output to these 3 depending on  the 
  1988.      setting of the IProute and ARP tables.
  1989.      
  1990.      The  router supports the IP options of NOS and also does  IP 
  1991.      fragmentation.  Level  2 segmentation is not  supported.  In 
  1992.      addition,  ICMP is implemented in so far as it is needed  to 
  1993.      respond  to  errors  or PINGs. No higher  layer  support  is 
  1994.      provided,  i.e.  TCP  is  not  implemented,  ip_send()   and 
  1995.      ip_receive()  are  only implemented in so far  as  they  are 
  1996.      needed for ICMP. You can therefore PING it but anything else 
  1997.      will solicit an ICMP error message.
  1998.      
  1999.      It  will  respond to ARP & REV_ARP requests but  will  never 
  2000.      initiate them. The default MTU is 256 for AX.25 and 236  for 
  2001.      Net/Rom.  It  will  accept longer datagrams  than  this  and 
  2002.      fragment  the output but it is not recommended as it  merely 
  2003.      wastes RAM. The MTU command may be used to change this.
  2004.      
  2005.      It is possible to be creative in the use of L2 datagram  and 
  2006.      virtual circuits by use of the port default settings and the 
  2007.      ARP table. The algorithm used is :
  2008.      
  2009.      When a frame is to be sent, the ARP table is scanned for the 
  2010.      appropriate entry. The entry tells it what callsign to  use. 
  2011.      For  Net/Rom  encapsulation,  it  is  sent  to  the  Net/Rom 
  2012.      protocol  handler.  For AX.25  encapsulation  the  following 
  2013.      applies. The ARP table may indicate DG or VC. In this  case, 
  2014.      that  mode is taken. If there is no DG or VC entry, the  TOS 
  2015.      bits are examined. If the delay bit is set, a datagram  mode 
  2016.      is  selected.  If  not, and the reliability  bit  is  set  a 
  2017.      virtual  circuit  is selected. If neither bit  is  set,  the 
  2018.      default  mode for that port is used to select a mode  (  see 
  2019.      IPstats command, first parameter ).
  2020.      
  2021.      Port addressing is not supported at the moment. When a  node 
  2022.      stack  is being used, it is possible to set all nodes  or  a 
  2023.      subset of them to the same IP address. For more information, 
  2024.      see the file 'IPXLINK.DOC'.
  2025.      
  2026.      The  IP router is manually controlled - no rspf or  rip,  or 
  2027.      even ARP requests. This is because 32K of RAM does not allow 
  2028.      such  niceties as queuing frames whilst waiting for  address 
  2029.      resolution.
  2030.      
  2031. 8. MISC
  2032.         
  2033.      Anyone  interested  in  a copy of the  program,  drop  me  a 
  2034.      message  on  GB7MXM.#36.GBR.EU  Also,  any  suggestions  for 
  2035.      change gratefully received.
  2036.         
  2037. Dave G8KBB
  2038. 7, Rowanhayes Close
  2039. Ipswich
  2040. IP2 9SX
  2041. England
  2042.  
  2043.